
import pandas as pd


df_results = pd.read_csv("results_data4.csv")
# 读取附件数据
df_land = pd.read_excel('附件1.xlsx', sheet_name='乡村的现有耕地')
df_crops = pd.read_excel('附件2.xlsx', sheet_name='2023年统计的相关数据')
df_crop_names = pd.read_excel('附件1.xlsx', sheet_name='乡村种植的农作物')


result1_1 = pd.read_excel('result1_1.xlsx', sheet_name=None)

# 读取作物名称与编号的对应关系
crop_name_mapping = {row['作物编号']: row['作物名称'] for _, row in df_crop_names.iterrows()}

print(type(df_results))
# 遍历每年的优化结果并填入 result2.xlsx 对应的表格
for year in range(2024, 2031):
    # 读取该年份对应的表格
    sheet_name = f'{year}'
    sheet_data = result1_1[sheet_name]
    # index0 = sheet_data.index[sheet_data['地块名'] == 'A1'].tolist()
    # print(index0, type(index0))

    # 遍历 df_results 中对应年份的数据
    for _, row in df_results[df_results['年份'] == year].iterrows():
        plot_name = row['地块']  # 地块名称
        # print(type(row['季节']))
        # print(type(plot_name))
        # print(_, type(_))
        # print(row, type(row))
        crop_id = row['作物']  # 作物编号
        season = row['季节']   # 第几季种植
        planting_ratio = row['种植比例']  # 种植比例
        # print(planting_ratio, type(planting_ratio))
        # 获取作物名称
        crop_name = crop_name_mapping.get(crop_id, None)
        # print(crop_name, type(crop_name))
        if crop_name is None:
            continue
        index_list = sheet_data.index[sheet_data['地块名']==plot_name].tolist()
        index_row = index_list[season-1]
        # 根据季节和地块名称直接插入种植比例
        sheet_data.loc[index_row, crop_name] = planting_ratio

    # 更新 result2 中该年的数据
    result1_1[sheet_name] = sheet_data

# 保存修改后的 result2.xlsx
with pd.ExcelWriter('result1_1.xlsx', engine='openpyxl') as writer:
    for sheet_name, data in result1_1.items():
        data.to_excel(writer, sheet_name=sheet_name, index=False)

print("已将结果插入到 result1_1.xlsx")
